package Dominio;

public class UserData {

	private String _nombre;
	private String _apellido1;
	private String _apellido2;
	private int _nif; // 8 dig
	private String _nick;
	private float _saldo;
	private Rol _rol;
	private String _pass;

	public UserData(int nif) {
		_nif = nif;
	}

	public UserData(int n, String na, String s1, String s2, String nk, String p) {
		set_nif(n);
		set_nombre(na);
		set_apellido1(s1);
		set_apellido2(s2);
		set_nick(nk);
		set_saldo(0);
		set_pass(p);
	}

	public UserData(int n, String na, String s1, String s2, String nk, float s,
			String p, String r) {
		set_nif(n);
		set_nombre(na);
		set_apellido1(s1);
		set_apellido2(s2);
		set_nick(nk);
		set_saldo(s);
		set_pass(p);
		set_rol(r);
	}

	public UserData(int n, String na, String s1, String s2, String nk, float s,
			String p, Rol r) {
		set_nif(n);
		set_nombre(na);
		set_apellido1(s1);
		set_apellido2(s2);
		set_nick(nk);
		set_saldo(s);
		set_pass(p);
		set_rol(r);
	}

	public UserData(int n, String ni, String p, Rol r) {
		set_nif(n);
		_nombre = "";
		_apellido1 = "";
		_apellido2 = "";
		set_nick(ni);
		_saldo = 0.0f;
		set_pass(p);
		set_rol(r);
	}

	public String get_nombre() {
		return this._nombre;
	}

	public void set_nombre(String _nombre) {
		this._nombre = _nombre;
	}

	public String get_apellido1() {
		return _apellido1;
	}

	public void set_apellido1(String _apellido1) {
		this._apellido1 = _apellido1;
	}

	public String get_apellido2() {
		return _apellido2;
	}

	public void set_apellido2(String _apellido2) {
		this._apellido2 = _apellido2;
	}

	public int get_nif() {
		return _nif;
	}

	public void set_nif(int _nif) {
		this._nif = _nif;
	}

	public float get_saldo() {
		return _saldo;
	}

	public void set_saldo(float _saldo) {
		this._saldo = _saldo;
	}

	public String get_nick() {
		return _nick;
	}

	public void set_nick(String _nick) {
		this._nick = _nick;
	}

	public Rol get_rol() {
		return _rol;
	}

	void set_rol(Rol _rol) {
		this._rol = _rol;
	}

	public String get_pass() {
		return _pass;
	}

	public void set_pass(String _pass) {
		this._pass = _pass;
	}

	public String get_rolString() {
		switch (_rol) {
		case CLIENTE:
			return "cliente";
		case TRABAJADOR:
			return "trabajador";
		default:
			return "administrador";
		}
	}

	void set_rol(String rol) {
		if (rol.equalsIgnoreCase("cliente"))
			_rol = Rol.CLIENTE;
		else if (rol.equalsIgnoreCase("trabajador"))
			_rol = Rol.TRABAJADOR;
		else
			_rol = Rol.ADMINISTRADOR;
	}

	public String toString() {
		return "Nif " + _nif + "\nNombre " + _nombre + "\nApellido1 "
				+ _apellido1 + "\nApellido2 " + _apellido2 + "\nNick " + _nick
				+ "\nSaldo " + _saldo + "\nContraseña " + _pass + "\nRol "
				+ get_rolString() + "\n";
	}

	@Override
	public boolean equals(Object o) {
		boolean sol = false;
		if (o != null) {
			if (o instanceof UserData) {
				UserData ud = (UserData) o;
				sol = ud.get_nick() == get_nick() && ud.get_nif() == get_nif();
			}
		}
		return sol;
	}

}
